
#include<iostream>
#include<cstring>

using namespace std;

const int N=10;
int a[N];
int t[N];

int calc(int x)
{
	int i=0;
	while(x)
	{
		i++;
		x&=(x-1);
	}
	return i;
}

int main()
{
	int k;cin>>k;
	while(k--)
	{
		memset(a,0,sizeof(a));
		for(int i=0;i<5;i++)
		{
			for(int j=0;j<5;j++)
			{
				char c;cin>>c;
				if(c=='0')  a[i]|=(1<<j);
			}
		}
		
		
        int ret=0x3f3f3f3f;
		
		for(int i=0;i<(1<<5);i++)
		{
			int push=i; int sum=0;
			memcpy(t,a,sizeof(a));
						
			for(int j=0;j<5;j++)
			{
				t[j]=t[j]^push^(push<<1)^(push>>1);
				t[j]&=(1<<5)-1;
				sum+=calc(push);
				
				t[j+1]^=push;
				push=t[j];
			}
			if(t[4]==0)  ret=min(ret,sum);
		}
		if(ret>6) cout<<-1<<endl;
		else cout<<ret<<endl;
	}
	
	return 0;
}









